Sensory output devices

ABSTRACT

Sensory output devices such as wearable items, three dimensional objects such as pebbles, ornaments, toy characters and the like, include controls responsive to the content of SMS messages or to recognition of spoken words or phrases in a telephone conversation to provide a response such as a thermal change, vibrational or other tactile response, colour change or olfactory output. The output may be intensified in dependence upon the number of times at which a particular word, phrase or emoticon is identified, the control means learning from identity information to associate a current call with an historic personality trait to maintain or adapt the response provided by the sensory output device.

The present invention relates to sensory output devices and moreparticularly, but not exclusively, to such devices for use with mobileor cordless telephone messaging technology.

Cellular telephones have developed significantly in recent years as havethe services which cellular network operators provide thereby. One ofthe more popular services is one called short messaging service (SMS)which permits cellular network users to send a short text message toother users. This service has proved extremely popular and has developedto allow the inclusion of icons indicative of emotions sometimes nowreferred to as “emoticons”. Such emoticons may include for example asmiling, frowning, laughing or crying face, outstretched arms(indicating a hug) and other such devices.

In further developments cellular mobile technology also permits thetransmission of picture messages and multi-media messages (MMS) tosuitably equipped mobile devices.

The popularity of SMS and MMS services is such that PSTN (Publicswitched telephony network) operators are allowing such services to becarried over the networks and fixed line telephones are now availablewith the capability for receiving SMS and MMS messages.

Many cordless telephones and some cellular telephones, PDA's (personaldigital assistants also sometimes called palmtop personal computers(PPC's)) are now equipped with a low power radio connection capabilityfor example low power radio communications operating to the “Bluetooth”standard. This output enables coupling between for example a mobilephone handset and a cordless headset or such a handset and a PPC toenable communication over the cellular network for access to theinternet without the need to maintain alignment between IRDA ports orfor physical coupling of the devices.

All of these capabilities are developing to enhance the users'entertainment and enjoyment although in some instances the use of thedevices may be considered intrusive to others and potentiallyinterruptive of the user's other activities.

In published PCT application no WO/01/88797 there is disclose acharacter device in the form of a toy adapted to provide voice output ofscheduling information from a calendar program of a file server. Thecharacter is also arranged to adopt certain positions to indicate thekind of activity which the scheduling information is providing.

The present invention relates to sensory output devices which includes,but is not limited to, a toy such as that referenced above, wearabledevices (hereinafter described) and other sensory stimulating apparatusincluding those capable of providing thermal, colour (or visual),olfactory and haptic stimulation. For the purpose of the descriptionwhich follows all of the above may be referred to as sensory outputdevices or “SOD”.

According to the present invention there is provided a sensory outputdevice including control means responsive to episodic receipt of datasignals defining a source and/or an emotional representation (emoticon)to provide an output stimulus defining the received data signals anddependant thereon characterised in that the control means is responsiveto each episode to modify the intensity of the response or to amend theresponse such that the output stimulus develops an intensity whichchanges to reflect perceivable characteristics of the source.

Preferably, the sensory output device comprises a data store which maybe user programmable with preferred output responses to specific sourcerelated data. The data store may have a plurality of attributesassociated with each source, each such attribute reflecting at least oneemoticon and having an intensity value associated therewith, theintensity marker being incremented or decremented to reflect historicvalues of emotional representations received from the respective source.

Intensity markers may be decremented periodically if a pre-determinedperiod of time elapses without receipt of an emotional representationfrom a source and the intensity value associated with any emoticon maybe bounded such that a maximum intensity of response is provided.

Data signals may be derived from a cellular telephony messaging systemand may be transferred to the control means either directly by receiptfrom a cellular telephone network or by way of a communication to atelephone handset with which the SOD has been previously paired. Lowpower radio signalling (for example “Bluetooth” communication), may beused to effect communication between a paired handset and the SOD.

SMS messages transmitted to a paired handset may be scanned by thecontrol means to identify emoticons or specific words or phrasescontained within a message to determine the response and intensity ofresponse of the SOD. Where a message contains one or more emoticons forwhich a response is pre-defined, the immediate responsive output may beintensified to reflect a strength marker associated with the identifiedemoticons. Alternatively if a message contains a plurality of emoticonsof similar characteristic the intensity of response may change toreflect the number of emoticons present.

The SOD may comprise a wearable element which may be adapted to providea thermal response to a particular source and to vary the intensity ofthe thermal response in dependence upon identified characteristics of areceived message. Such a response may be accompanied or be substitutedby a vibration output and/or by a colour change and/or by an olfactoryoutput.

In a further development the wearable element may include means toprovide a constriction response such that the user feels a restrictionfollowed by a relaxation of restriction (“hug”).

The SOD may alternatively be a three dimensional object such as a pebbleor a plurality of pebbles responsive to data signals to provide athermal, visual, vibration or olfactory response and such object may beincorporated in a wearable element such as a bracelet, necklace or otherjewellery item.

In a still further alternative the SOD may be a three dimensionalcharacter (“toy”) having characteristics such as movements of one ormore parts thereof, the movement of the parts being dependent uponsource and/or emotional messages received or derived.

The control means may also be responsive to voice communications by wayof the paired mobile device to identify particular words or phrasesspoken during a conversation or received as a voice message to provide aresponsive adaptation of the output of the SOD.

A sensory output device in accordance with the invention will now bedescribed by way of example only with reference to the accompanyingdrawings of which:

FIG. 1 is a block schematic diagram of a control circuit for a sensoryoutput device;

FIG. 2 is a data layout schematic used in the data store of FIG. 1

FIG. 3 A and FIG. 3 B is a flow chart of the processor of FIG. 1 whenreceiving an SMS or voice message;

FIG. 4 is a flow chart of the processor of FIG. 1 showing an agingprocess; and

FIG. 5 is a flow chart of the processor of FIG. 1 in a pairing mode.

Referring first to FIG. 1, the SOD includes a processor 1, for example amicroprocessor, programmed to control at least one actuator interfacewithin the SOD several of which 2-6 are shown for example only.Depending upon the functionality built in to the SOD there may be anumber of such actuator interfaces or only a single one selected toeffect actuation of a respective output function or functions.

For example, the actuator interface 2 is linked to a movement activator7 and may cause a part of the SOD to move for example by causingconstriction of one or more electro responsive bands in a wearable suchas a t-shirt or sweat shirt such that if the band is incorporate betweenpoints of the material of the search on either side at the back the usermay receive an apparent hug, whilst incorporating such a band in asleeve a squeeze to the wrist or upper arm may be perceived.

In an SOD such as a three dimensional character, perhaps a toycharacter, the movement actuator 7 may be linked to a feature such as awaving arm or to cause the toy to move by providing motor drive forwheels or castors or other movement features. The movement actuatorcould also be linked to other features such as moving eyelids, mouth,and the like whereby a smile, a wink, a scowl or grimace can beprovided. The movement actuator 7 might also be used to connect to amotor drive in a liquid containing bowl for example to produce aswirling effect or to generate rising bubbles in the liquid.

Other uses of the movement actuator 7 may simply include a vibratorincorporating in to a wearable or other device to produce a vibrationeffect perceivable by the user by feel or audibly.

The actuator interface 3 is shown as coupled to optical effect devices 8which may produce a colour change by electro optical effect or simplyprovide a visual output to the user. Such an output could be combinedwith the movement output in a suitable environment. The actuatorinterface 4 is shown as being coupled to a smell generator 9 which maysimply be a device preloaded with a single aerosol scent, for example ausers favourite perfume or that of the users spouse whereby s sense ofpresence can be generated as a response to a call or SMS message.

Thermal output 10 may be provided by one of the actuator interface 5whereby by applying electrical stimulation to a suitable coated pebbleor electro responsive element a change in temperature can be provided tostimulate a user. Such could again be incorporated with other features.For completeness the actuator interface 6 is shown as coupled to anaudible device 11, for example a load speaker incorporated in the toy,or wearable to provide musical, voice or similar output which may beaudible to the user or may provide an atmospheric change for example bybeing outside the human audible range providing for example lowfrequency contributions to the feel of the SOD.

The SOD may include a visual display unit, for example in the form of aliquid crystal display screen to provide an output to the user or toassist with basic programming or setting up of the response requiredfrom the SOD in respect of certain received features of messages orconversations. The LCD may also be used to display the actual content ofa received text message.

There may be several inputs to the processor 1 including for example auser interface such as a touch screen or connectable keyboard 14 toenable inputs in respect of required responses for example. The userinterface may be as simple as a detector which senses a squeeze of asingle point to enable a yes/no type response in reply to an outputalthough more complex arrangements could be employed so that a toy forexample could detect a “hug” in reply to a received message or to betransmitted in an SMS message to another user.

A program interface 15 is provided which may be designed to acceptpre-programmed devices such as a read-only memory card 16 which couldreflect the modus operandi of the actuators 2-6 by modifying ordeveloping the basic programming of the processor 1.

To complete the functionality of the processor 1 there is a data storeor memory which contains the required parameters of output and“personality” as determined from time to time by the operation of theprocessor 1.

The flexible inputs to the processor 1, those to which it is responsiveto control the actuators 2 to 6 mainly comprise a communicationsreceiver 18 which may be coupled to a message receiver such as a mobilephone, for example using the “Bluetooth” low power radio standardwhereby a single receiving device, for example the mobile phone 19, maybe coupled to several items. Alternatively, the SOD may incorporate aphone or SMS receiver 19 with its own SIM card whereby directcommunication between a network and the SOD may be achieved althoughsuch may limit the flexibility of the SOD unless it also incorporatesthe LPR receiver 18.

Thus the receiver 19 may either pass data directly to the processor 1 asindicated by dashed line 21 or may forward messages using LPR asindicated by dashed line 22. In either event the response of theprocessor 1 is to analyse the content of the communication in order toderive actuations required and to develop the personality signature inassociation with the call. Over time the processor 1 will also build upan historic relationship between certain callers/message senders and apersonality which can be used to modify the response of the SOD tocertain callers on the basis of their historic communication pattern andcontent with the user.

As a further feature of the SOD a location sensor 23 may be included,for example a GPS location sensor so that the response of the SOD may bevaried for different locations of the same SOD.

As an alternative to GPS positioning devices such as Radio FrequencyIdentity Chips (RFID) could be used whereby activation of RFID modulesincorporated in the SOD and placed at strategic points could identifythe location of the SOD within the confines of say a house, indicatingwhether the device is in a bedroom, kitche or living room for example.Thus turning also briefly to FIG. 2 the data store 1 may have a seriesof allocated memory positions each of which is associated with, forexample, a calling line identity (CLI) which is received from thecommunications receiver 18. The CLI may be used to create a personalityprofile or to recover or update a previous personality profile to beassociated with the SOD. For example, a first block of words in the datastore 1 is allocated to a particular CLI (“CLI 1”) and has a number ofbytes allocated to personality flags. Thus in the first three rows ofthe data associated with CLI 1 three typical icons (“smiley” “grumpy”and “heart”) are shown each with five allocated flags. Other icons maybe used or identified and the icons shown could represent wordsidentifiable in text messages or voice conversations rather thanspecific emoticons as used in SMS messaging.

There may of course be many allocated flags for differing emoticons ortext words or voice words without a limitation dependent upon theavailable space in the memory and the number of CLI's to be specificallyidentified. There may also be a set of stored definitions defined as“default” values for non specific CLI's.

Also stored is an action definition which defines the responsive actionwhich the SOD makes in respect of the differing emoticons or receivedelements so that these may, at the user's option, vary between callers.In its simplest form, the action definition is an actuator reference forone of the actuators 2-6 although it will be appreciated that complexactions involving performance of differing actuations in parallel orsequentially together with timing information can be provided.

To facilitate aging or adaptation of personality development over time,time and date stamp information, such as the last time a call wasreceived or the last time an aging or de-aging process was run is alsostored for subsequent use by the processor 1 to maintain some changeover time of the personality of the SOD and to avoid saturation buildingup over a significant period without reinforcement through receipt ofappropriate messages or communications.

Also shown is a location—action definition which enables the user todefine alternative actions for the SOD in response to the emoticons orother words or phrases identified if it is other than at its usuallocation. Thus if the SOD includes a location sensor 23 then actions maybe varied from place to place. Alternatively, actions could be varied ondetection of a sensed orientation of the SOD. For example, voice outputor actions may be varied in accordance with the location of the SOD suchthat in a bedroom a “sleepy” response could ensue while in an officelocation a more muted response might be given.

A particularly alert response could arise in a lounge or living roomwhile a hungry response may be programmed for output in a kitchen ordining room.

In operation, the processor 1, referring now to FIG. 3, on receipt of amessage first identifies the CLI part of the message (301) and comparesthis with all CLIs stored in the data store 17. If there is no matchbetween the received CLI and one in the data store (302) then the“current” action is set to the default mode as stored. If, however, atstep 302 a CLI is identified for which there are stored details then acheck (304) is carried out to determine whether there are actionsassociated with the particular sender.

If there are actions associated with the user then a further check (305)as to whether the action is location sensitive is performed to determinewhether the input form the location sensor will need to be taken in toaccount. Where location is appropriate then the location is checked 306and the current action is updated with data recovered from the datastore location-action data. If location is not a factor in the output ofthe SOD then the current action is set to the information contained inthe primary action definition field (307).

The processor 1 will now cause the appropriate actuator(s) 2-6 to beactivated (308) to indicate to the user the possible identity of theincoming caller or message sender. Note that while the description aboveis in respect of a received SMS message, the CLI identity process may becarried out in the same manner for a received voice or multi-media call.

Having identified the CLI and the associated data, a received SMSmessage text is scanned (309) to determine the presence of any emoticonsor key words or phrases as identified from the stored data table. Ifthere are no such keywords or emoticons then the CLI is used to checkfor the existence of a “personality” (311) which may be recovered fromthe icon flags previously referred to. If there is no personality forthe current caller/sender then the current personality is set to thedefault values (312) (which may be nil). If a previous personality forthe particular CLI has been developed over time then that personality isrecovered and stored as the current personality (313).

Now, if at step 310 keywords, emoticons and/or phrases are identified inthe message then depending upon the CLI for an existing personality asdetermined at 314 the associated personality profile may be updated. Forexample if a user profile includes two flags set for “smileys” and afurther smiley is received then a third smiley flag may be set so thatthe output action for a friendly personality message is intensified.Such an action may be modified by the presence of “grumpies” and receiptof a smiley may result in one or more grumpies being cancelled todevelop a change in the personality from each received message. Furtherdetail may be found in the pseudo code hereinafter.

Having updated the personality the current personality is set to thevalues associated for use by the processor in activating the features ofthe SOD.

Assuming now that at step 314 the CLI is not associated with an existingpersonality profile in the data store, the user may be given anopportunity to create a personality profile to be associated with theCLI for future use. If this is accepted by the user then a personalitywill be created based upon the currently received message and/oradditional user input through step 315.

If a user personality is neither present nor created then (317) apersonality may be created from the latest received message. Once thecurrent personality has been set then this is used by the processor 1 toactivate 318 the features of the SOD for a predetermined period 319prior to resetting the features for the next received message or call.

FIG. 4 shows an automated program which may run in the processor 1 fromtime to time to effect automated aging of the SOD or to adaptpersonality profiles in the data store when no adaptation has takenplace for a period of time. Thus at some pre determined interval,possibly once a day or once a week for example, the personality timerprogram runs in the processor and determines first whether the ROMcontains aging features for the SOD 401. Assuming that it does then theaging features may be applied to the profiles and/or basic activity ofthe SOD prior to determining whether the personalities individually ofeach of the associated CLIs have been updated since the last time thepersonality timer program ran. If there has been no updating 403 of thepersonality profile in the interim period then, provided all of thefeatures are not at their minimum value 404 the features may be adjusted405 by decrementing for example the number of flags present so that theintensity which the processor 1 applies to the actuators in respect ofthe particular feature is reduced. This “leaky bucket” approach ensuresthat the SOD does not become saturated over a period of time duringwhich personality build up is not reset.

Finally, the personality timer is reset (405,406) to provide the time atwhich the program will run again.

Referring now to FIG. 5, as has been mentioned the SOD may operate inassociation with a mobile phone for other device communicating byBluetooth Low Power radio. In “pairing” mode, once the user operates apairing activation instruction the communications system 18 will scanfor the presence of a transmitting bluetooth device in pairing mode(502) and will transmit an acknowledgement if one is found. Subject tothen receiving the device code associated with the present SOD within apredetermined scanning period 503 it will implement acceptance and pairwith the transmitting device (504) so that future communications fromthat device whenever it is within range may be accepted. The scanningtakes place for a limited period after action, for example 2 minutes,and if no pairing signals are received in that time scanning ceasesuntil the user again activates the pairing function.

Coinsidering a first use of an SOD (wearable device, jewellery, 3dvisual output device etc), particular messages, calls or signals from aBluetooth (BT) or low powered radio mobile phone are sent to a 3Dphysical product that interprets those signals and acts accordingly uponthose. In this case the BT phone is sending messages to a BT 3D SOD thatreacts differently to particular signals, caller ID, amount of signalsand other variations in signals. These signals may be sent using sms,mms, ems and/or 3G services.

Bluetooth chips are readily available from manufacturers in bulk.

A BT mobile phone sends an sms text to a bluetooth enabled/chippedphysical SOD.

The Bluetooth in the phone would talk to the bluetooth chip in the SOD(pairing as above). The SOD is normally the Bluetooth host—the master,and the mobile phone the slave. A computer can be a master and a slavewhich will enable the SOD to talk to the computer if necessary also.

In order to make your BT mobile phone talk to and activate your SOD andyour SOD alone, they need to become a pair. The Bluetooth mobile phoneand product would be paired via standard Bluetooth protocol. Once theyhave detected each other, you would just need to press a button or inputa pin number, which will be requested on each to confirm that you wishthe two to become paired. The pin number would most probably begenerated uniquely and randomly on your SOD, which the user could theninput into their mobile phone via it's keypad. The little screen on theSOD could be a robust but cheap and simple calculator type LCD screen onwhich to view the pin code.

When the phone or product are taken out of range of one another, the SODwill not be activated, but you will still receive the message on yourphone which you will likely have taken with you anyway. When the phoneand product return to within range of each other the auto-discoverfunction will seamlessly and automatically pair the two together again.We believe the messages sent to the SOD whilst apart maybe lost, butwill be on the phone to look at. It may be possible to resend or storethem as unopened until the two re-pair and therefore you can see yourSOD's responses from messages sent whilst you were away when you return.Whilst apart messages will only appear on the phone, they will not belost. It is probably not possible to get the SOD to react to thesemessages at a later date.

The memory within the SOD would be mounted on a removable cartridge orcard to be replaced/upgraded or to transfer the information elsewhereeg: to other compatible SODs. The memory can be sold in small quantitieson the cards initially increasing over time, so that customers mayupgrade to another product eg: 1 k, 5 k, 1 mb. The memory can bereprogrammable to allow you to customise your SOD or change reactionsfrom specific messages or CLI for example.

Customisation:

The SOD may be synchronised with a desktop personal computer for exampleto rewrite the commands and preconfigured messages. Users could download additional software including actions/emoticons/MMS pictures/iconsand upgrades from a website to perform certain actions and customise theproduct. These could be customised through email via Bluetooth also.

Alternatively, the SOD may incorporate a WiFi chip permitting its usewith a wireless LAN in the home. This latter usage with LAN or Broadbandconnection to the SOD could enable a user to have an SOD in a loungewhere a computer screen may not be appropriate or desirable, the SODresponding to the receipt of e-mail messages or calendar reminders andother alerts received by the PC so that the user becomes aware of theneed to view the computer output screen.

Custom applications could be written using Java to convert informationbetween the Bluetooth chip and alter the product's outputs. Phones thatsupport Java applications could have an extra program downloaded intothem enabling them to perform more complex message sorting. Hanging ontomessages until the SOD is in range for instance Interface:

The basic LCD (calculator) screen on the SOD for viewing the pin numbercould also be used to scroll up and down for emoticons/prefiguredmessages or those already stored in the mobile phone, and then you couldpress a send button to simply reply to any messages just received/thelast message sent, that way there would be no need to have names andnumbers stored, although this could be done on the memory card. Thishowever would make the phone more redundant although it could still sendthe messages from the SOD through the phone via bluetooth. Alternativelyit would mean the SOD would turn into a mobile phone itself in essence.

Once the mobile signal has been sent to the SOD, the mobile chip in theproduct would talk to the CPU (Central Processing Unit which could beflashable) The CPU may be from the Philips 8051 family, this hasexternal program memory which can be a variety of standard memory chips,and this chip would be the removable part.

Once the CPU has received info from the mobile chip, it will comparethis info with the memory in a look up table as per the followingexample:

This is a basic version of the program without learning, multipleemoticon messages or CLI but with reply sending.

It assumes that there is a look-up table of emoticons & actions innon-volatile memory (this can fixed at the factory, on removable media,changeable over Bluetooth etc. depending on the sophistication of theSOD), that the SOD has an LCD display which can display a number or amenu selection and there is a little bit of non-volatile memory to storethe Bluetooth pairing details.

The entries in the look-up table each consist of an emoticon and anaction. Emoticons with variable intensity parameters are simply treatedas a set of separate emoticons (this is slightly inefficient in memoryuse but enables actions to be totally different, not just different indegree, for different intensities if desired). An action specified as aset signals to send to particular actuators at particular times(relative to the start of the action). Actions elements do notautomatically end unless; a time bounded action needs separate actionelements with later times telling the actuators to cease.

The selection is chosen by ‘Up’, ‘Down’ & ‘Okay’ buttons. The menu itemsinclude disconnecting from the particular telephone which it iscurrently paired with and a collection of message replies.

The program is as follows: { Call Set-up routine.  Repeatedly do  { IfPerforming Action Flag is ‘no’, do  { If Incoming Message Count is notzero, do   { Instruct the telephone to give out the message text.  Receive the message from the telephone.   For each entry in theEmoticon & Action Table, do   { If the message text equals the emoticonin that table entry    { Set Performing Action Number to entry's indexnumber    in the table.    Instruct the telephone to give out thesender's telephone number.    Receive the telephone number from thetelephone.    Set Reply To Number to that telephone number.    Instructtelephone to delete the message.    Set Performance Clock to zero.   Set Performing Action Flag to ‘yes’.    Break out of this searchthrough the Emoticon & Action Table.}}   Decrement Incoming MessageCount.}}  If Time To Next Pairing Test >= some chosen constant, do   {Test the Bluetooth link to the telephone.   If the test failed, do   {Call Clear-up routine.    Restart the program.}   Set Time To NextPairing Test to zero.}   Do autonomous actions (if the particular SODrequires it).}}  Set-up routine is  { Set Incoming Message Count tozero.  Set Selected Menu Item to zero.  Set Time To Next Pairing Test tozero.  Set Reply To Number to something that is not a valid  telephonenumber.  Set Performing Action Flag to ‘no’.  If there is not aBluetooth pairing to a telephone.  { Create a Bluetooth pairing to thetelephone in the standard way.}  Enable Clock Interrupt.  EnableSelector Interrupt.  Enable Bluetooth Interrupt.  Instruct the telephoneto notify SOD of received messages.}  Clear-up routine is  { DisenableBluetooth Interrupt.  Disenable Selector Interrupt.  Disenable ClockInterrupt.  Break Bluetooth pairing to telephone.}  Clock Interrupthandler is  { Suspend Clock Interrupt.   If the is a valid Emoticon &Action Table index, do   { Set Performing Action Flag to ‘no’.   Look upPerforming Action Number th entry in Emoticon &   Action Table   Foreach element in that action, do   { If the Performance Clock = the timefor that action, do    { Output specified signal for that action to thespecified actuator.}    If the Performance Clock < the time for thataction, do   { Set Performing Action Flag to ‘yes’.}}   IncrementPerformance Clock.}  Decrement Time To Next Pairing Test;  Enable ClockInterrupt.} Menu Interrupt handler is { Suspend Menu Interrupt.  Ifbutton pressed was the Up button, do  { Increment Selected Menu Item.} If button pressed was the Down button, do  { Decrement Selected MenuItem.}  If button pressed was the OK button, do  { If Selected Menu Itemis to disconnect from the telephone, do  { Call Clear-up routine.  Restart the program.}  If Selected Menu Item is to reply to theprevious message, do  { If there is a Bluetooth pairing and the Reply ToNumber is valid, do   { Instruct the telephone to create a message.  Pass the Selected Menu Item's message (emoticon) to the telephone.  Pass the Reply To Number to the telephone.   Instruct the telephone tosend the message.}}}  Display text for Selected Menu Item on the LCD. Resume Menu Interrupt.} Bluetooth Interrupt handler is { SuspendBluetooth Interrupt.  If the Bluetooth message notifies of a receivedSMS message, do  { Increment Incoming Message Count.}  Resume BluetoothInterrupt.}

Pseudocode for SMS SOD with Learning

The following features may be provided by an SOD in accordance with theinvention although the list below is not intended to be exclusive ofother activities.

Performing actions in response to incoming messages.

Incoming messages via Bluetooth link with a mobile telephone.

Bluetooth pairing set-up when commanded.

Bluetooth link automatic reconnecting on power up.

Bluetooth link automatic reconnecting when coming back within range.

Bluetooth pairing breaking when commanded.

Recovery from power failure & other causes of rebooting.

Queues messages which arrive whilst actions are being performed.

Action can be time-bounded or open ended.

Reply message to previous message sender when commanded.

Automatic telephone command disenabling if the link is broken.

Three button & LCD menu command input.

Menu input multitasks with action performing.

SOD actuators reset to predefined initial (i.e. “off”) state uponpower-up.

Caller-specific actions.

Learning (or simulated learning).

Several features of the program are not to meet functional requirementsbut optimisations for running on a micro controller (e.g. usinginterrupts rather than poling and keeping the call-stack small) forrobustness (e.g. it can cope with new messages arriving whilst it isstill performing the actions from previous ones & will recover frompower failures).

Hardware:

It assumes that there are look-up tables of emoticons & actions in ROMor non-volatile RAM (this can fixed at the factory, on removable media,changeable over Bluetooth etc. depending on the sophistication of theSOD), that the SOD has an LCD display which can display a number or amenu selection and there is a little bit of non-volatile RAM to storethe Bluetooth pairing details. If caller-specific actions are requiredthen the emoticon look-up table also needs to be in non-volatile RAM orreplicable writable ROM.

EEPROM would typically be used as the non-volatile RAM, in which casethe direct use of use of the data in it in the following program wouldprobably, at a low level, be replaced with commands to read from & writeto the EEPROM but the algorithm would otherwise be the same.

Menu:

The selection is choosable by ‘Up’, ‘Down’ & ‘Okay’ buttons.

The menu items include pairing to a Bluetooth telephone & breaking thecurrent pairing which are done by choosing the item from the menu andpressing the ‘Okay’ button. It also includes sending a reply messagewhich is done by choosing the emoticon to reply with from the menu andpressing ‘Okay’ whereupon it will be sent to the sender of messageswhich caused the most recently performed action.

Databases:

The entries in the Emoticon Table each consist of an emoticon, a callerID (telephone number) and the number of the action (indexing into theAction Table) which is to be performed when that emoticon is received isreceived from that particular telephone number. To specify a defaultaction for a particular emoticon (for use if it is received from atelephone number for which there is not a specific entry for thatemoticon), simply specify the telephone number as null. All such default(null telephone number) entries should be after the specific telephonenumber entries in the table with the same emoticon so that the specificones are found first in searches.

Emoticons with variable intensity parameters are simply treated as setsof separate emoticons in the Emoticon Table (this is slightlyinefficient in memory use but enables actions to be totally different,not just different in degree, for different intensities if desired andmakes the program simpler).

The entries in the Action Table specify as a set action elements, eachof which consists of the signal to an actuator, the label of whichparticular actuator to send it to and what time times (relative to thestart of the action) to send it. Actions elements do not automaticallyend. If a time bounded action is required then it can be made of twoseparate action elements with different times, the former being a‘start’ signal to an actuator & the latter being a ‘stop’ signal. TheAction Table includes entries for all the actions referenced from theEmoticon Table & the Caller-specific Emoticon table plus an extra one tobe performed on power-up (typically turning all the motors off).

Learning:

The program is initially presented without any learning ability but withplace-holder functions for the learning (or simulated learning)features. It is then followed by a set of replacement routines forexemplifying some simple learning algorithms. These could be combined(e.g. logarithmic stages based on incoming message numbers, frequencies& content per telephone number) and/or replaced with further learningalgorithms.

Of course, if a particular learning routine modifies the Emoticon Tableor Action Table then that table must be in non-volatile RAM or EEPROMnot ROM.

Similarly, the Age record and any history call records used for thelearning routine must be stored in it. The Age record is set to zerowhen the SOD is manufactured. Program is { Call Power-up routine.  CallSet-up routine.  Repeatedly do { Test the Bluetooth link to thetelephone.  If the test passed, do  { While Time Since Pairing Test <some chosen constant, repeatedly do  { If Performing Action Flag is‘no’, do   { If Incoming Message Count is not zero, do   { Instruct thetelephone to give out the message text.    Receive the message from thetelephone.    Instruct the telephone to give out sender's telephonenumber.    Receive the telephone number from the telephone.    For eachentry in the Emoticon Table, do    { If the message text equals the thatentry's emoticon    { If the telephone number matches the received oneor is null     { Set Performing Action Number to that entry's emoticon.    Set Reply To Number to that telephone number.     Instruct telephoneto delete the message.     Set Performance Clock to zero.     SetPerforming Action Flag to ‘yes’.     Call Learn From Received Messageroutine.     Break out of this search through the Emoticon Table.}}   Decrement Incoming Message Count by one.}}}  Do autonomous actions(if the particular SOD requires it).  Set Time Since Pairing Test tozero.}  Otherwise  { Call Clear-up routine.  Call Set-up routine.}}Power-up routine is { Set Performing Action Number to the power-upaction's number.  Set Performing Action Flag to ‘yes’.} Set-up routineis { Set Incoming Message Count to zero.  Set Selected Menu Item tozero.  Set Time Since Pairing Test to the maximum value the variable cantake.  Set Reply To Number to something that is not a valid telephonenumber.  If there is not a Bluetooth pairing to a telephone.  { Create aBluetooth pairing to the telephone in the standard way.}  Enable ClockInterrupt.  Enable Selector Interrupt.  Enable Bluetooth Interrupt. Instruct the telephone to notify SOD of received messages.} Clear-uproutine is { Disenable Bluetooth Interrupt.  Disenable SelectorInterrupt.  Disenable Clock Interrupt.} Clock Interrupt handler is {Suspend Clock Interrupt.  If the is a valid Emoticon & Action Tableindex, do  { Set Performing Action Flag to ‘no’.   Look up entry in theAction Table indexed by the Performing   Action Number   For each actionelement in that entry, do   { If the Performance Clock = the time forthat action, do   { Output specified signal for that action to thespecified actuator.}   If the Performance Clock < the time for thataction, do   { Set Performing Action Flag to ‘yes’.}}   IncrementPerformance Clock by one unit.}  Increment Time Since Pairing Test byone unit.  Increment Age by one unit.  Enable Clock Interrupt.}  MenuInterrupt handler is  { Suspend Menu Interrupt.  If button pressed wasthe Up button, do  { Increment Selected Menu Item by one.}  If buttonpressed was the Down button, do  { Decrement Selected Menu Item by one.} If button pressed was the OK button, do  { If Selected Menu Item is todisconnect from the telephone, do   { If there is a Bluetooth pairing,do   { Instruct the telephone to notify SOD of received messages.}   Break Bluetooth pairing to telephone.    Call Clear-up routine.   Restart the program.}   Otherwise   { Display error message /apology.}}  If Selected Menu Item is to reply to the previous message,do  { If there is a Bluetooth pairing and the Reply To Number is valid,do   { Instruct the telephone to create a message.   Pass the SelectedMenu Item's message (emoticon) to the telephone.   Pass the Reply ToNumber to the telephone.   Instruct the telephone to send the message.  Call Learn From Sent Message routine.}}   Otherwise   { Display errormessage / apology.}}  Display text for Selected Menu Item on the LCD. Resume Menu Interrupt.} Bluetooth Interrupt handler is { SuspendBluetooth Interrupt.  If the Bluetooth message notifies of a receivedSMS message, do  { Increment Incoming Message Count by one.}  ResumeBluetooth Interrupt.} Learn From Received Message routine is { } LearnFrom Sent Message routine is { }

LEARNING EXAMPLE 1 By SOD Age

This is not technically learning but will appear to be so to most users.It simply changes the behaviour with time. It does so by changing theindexing from the Emoticon Table to the Action Table based on the SOD'sage.

The following example is for a SOD with 3 emoticons whose action changeswith time (there could be other fixed ones) & 5 stages through whichactions change (after which they stay at the final one). It requiresAging Rate to be set to the time between changes & for the Action Tableto contain five entries for each of those emoticons at positions 0 to 4,to 9 & 10 to 14 respectively. Learn From Received Message routine is {Set Life Stage equal to Age divided by Aging Rate.  Round down LifeStage to nearest integer.  If Life Stage > 4  { Set Life Stage to 4.} Set action number in Emoticon Table for ‘:-)’ to Life Stage.  Setaction number in Emoticon Table for ‘:-(’ to Life Stage + 5.  Set actionnumber in Emoticon Table for ‘rm −r /*’ to Life Stage + 10.}

LEARNING EXAMPLE 2 By SOD Age, with Slowing Aging Rate

It is probably beneficial to have having the initial changes occurringrelatively rapidly to encourage initial use but then slowing to savesome changes for heavy, enthusiastic & long term users.

This can simply be done by having Life Stage as a non-linear function ofAge with negative second differential. A logarithm is an obvious one(for a micro controller this is rather computationally intensive so asimple set of comparison to fixed numbers at increasing intervals wouldprobably be a better implementation than mathematically calculatinglogs).

LEARNING EXAMPLE 3 By SOD Age, Alternative Method

This has the same effect as Learning Example 1 but works by modifyingthe Action Table instead of the Emoticon Table. The Emoticon Table isfixed & the Action Table does not have multiple entries for eachEmoticon Table entry but there is third fixed table, the Life StagesTable, which is contains the set of actions to be performed for eachindex from the Emoticon Table at each stage of the SOD's life. LearnFrom Received Message routine is { Set Life Stage equal to Age dividedby Aging Rate.  Round down Life Stage to nearest integer.  If LifeStage > 4  { Set Life Stage to 4.}  For each emoticon whose actionchanges with SOD age, do  { Look up the number for its action in theEmoticon Table.  Look up action set for that action number & Life Stagein Life  Stages Table  Set entry in Action Table for that number to thataction set.}}

LEARNING EXAMPLE 4 By SOD Age, Gradual Change in Amplitude

Learning Examples 1 to 3 have abrupt (discrete) changes in the behaviourof the SOD.

This example has a gradual change instead, for example from a smallmotion to a big motion.

It uses the method of Learning Example 3, changing the Action Table, butinstead of looking up actions, it calculates actions. This is done byinterpolating between the actions for a new SOD, specified in YoungAction Table, and those for an old SOD, specified in Elderly ActionTable. The action entries for each action in the Young Action table mustbe in the same order, of the same number & linearly combinable with thecorresponding ones in the Elderly Action Table (of course). Maximum Ageis fixed at the age at which the SOD should exhibit its final behaviour.Learn From Received Message routine is { Set Life Fraction equal to Agedivided by Maximum Age.  If Life Fraction >= 1  { Set Life Fraction to1.}  For each emoticon whose action changes with SOD age, do  { Look upthe number for its action in the Emoticon Table.    Look up the actionset indexed by that number in the Young    Action Table.  Set entry inAction Table for that number to that action set.    Look up the actionset indexed by that number in the Elderly    Action Table.    For eachaction element in the action set from the Elderly Action    Table, do  {Subtract from it the corresponding one from the Young Action Table. Multiply it by the Life Fraction.  Add to it the corresponding one fromthe Young Action Table.}  Add to the Action Table entry for that actionnumber that action set.}}

LEARNING EXAMPLE 5 By SOD Age, Gradual Change in Action Type

The method in Learning Example 4 can also be used to have the actiongradually change in type, e.g. from a motion to a sound. This can beachieved by having a Young Action Table entry containing a largeamplitude motion action element and a zero amplitude sound actionelement (but still in the table even though it is zero) andcorresponding Elderly Action Table entry containing a zero amplitudemotion action element and a large amplitude sound action element. Themotion component of the action would then fade out over time whilst thesound element fades in.

LEARNING EXAMPLE 6 By SOD Age, Gradual Change in Action Duration

Furthermore, the method in Learning Example 4 can also be used to havean action gradually change in duration, e.g. from a short light flash toa long light flash. This can be achieved by having a Young Action Tableentry containing a start action element and an end action element forparticular actuator and having the same action elements in the ElderlyAction Table but with the time form the end action element set to alater time.

LEARNING EXAMPLE 7 By Total Number of Messages

Instead of simply using the age of the SOD, the SOD's behaviour can bedetermined by the messages it receives. In this simple example, it usesthe total number of messages. For clarity, this is based on theelementary Learning Example 1 although the extra complexity of Learningexamples 2 to 6 (Action Table changing, gradual changes, etc.) could, ofcourse, be incorporated. It requires Lifetime Message Count to be storedin non-volatile RAM and to be initialised to zero at the time ofmanufacture. Maximum Message Count is fixed at the count at which theSOD should exhibit its final behaviour. Learn From Received Messageroutine is { If Lifetime Message Count < Maximum Message Count  {Increment Lifetime Message Count by one.}  Set Life Stage to MaximumMessage Count times 5.  Divide Life Stage by (Lifetime Message Count +1).  Round down Life Stage to nearest integer.  Set action number inEmoticon Table for ‘:-)’ to Life Stage.  Set action number in EmoticonTable for ‘:-(’ to Life Stage + 5.  Set action number in Emoticon Tablefor ‘rm −r /*’ to Life Stage + 10.}

LEARNING EXAMPLE 8 By Frequency of Messages

This example is like Learning Example 7 but, instead of using the totalnumber of messages ever received, it uses the number of messagesreceived recently as a measure of activity.

It could be implemented by keeping a list of times of recently receivedmessages, removing old ones from the list, adding new ones in andcounting how many are currently in the list but this example uses thesimpler, but functionally similar, method of just keeping a countdecaying it exponentially with time. It requires Message Activity &Previous Age to be stored in non-volatile RAM and to be initialised tozero at the time of manufacture.

Message Activity Limit is fixed at the count at which the SOD shouldexhibit its final behaviour. Forgetting Rate is fixed at the timeconstant at which remembrance of messages having arrived decays. LearnFrom Received Message routine is { Set Time Since Previous Message toPrevious Age minus Age.  Set Previous Age to Age.  Set Decay Factor toTime Since Previous Message divided by  Forgetting Rate  If Decay Factoris not zero  { Divide Message Activity by exp(Decay Factor negated).} Increment Message Activity by one.  If Message Activity > MessageActivity Limit  { Set Message Activity to Message Activity Limit.}  SetLife Stage to Message Activity times 5.  Divide Life Stage by (MessageActivity Limit + 1).  Round down Life Stage to nearest integer.  Setaction number in Emoticon Table for ‘:-)’ to Life Stage.  Set actionnumber in Emoticon Table for ‘:-(’ to Life Stage + 5.  Set action numberin Emoticon Table for ‘rm −r /*’ to Life Stage + 10.}

LEARNING EXAMPLE 9 By Frequency of Messages, With Caller Identification

This example is like Learning Example 7 but it works on a per-callerbasis so that, for example, a message from a frequent caller can give adifferent action to that from an infrequent caller.

It requires Message Activity Table & Previous Age to be stored innon-volatile RAM and to be initialised to zero at the time ofmanufacture.

Message Activity Limit is fixed at the count at which the SOD shouldexhibit its final behaviour. For simplicity, sender-specific behaviourwill not be shown in further examples although it could, of course, butin similarly and could be beneficial. Learn From Received Messageroutine is { Set Time Since Previous Message to Previous Age minus Age. Set Previous Age to Age.  Set Decay Factor to Time Since PreviousMessage divided by  Forgetting Rate  If Decay Factor is not zero  { Foreach entry in Message Activity Table, do  { Divide its message activityby exp(Decay Factor negated).}}  Look up the Message Activity Tableentry for current sender  telephone number  If an entry was not found  {If the Message Activity Table is full  { Delete entry with lowestmessage activity   Reset the Emoticon Tables entries for its telephonenumber   to defaults.}  An entry for current sender telephone numberwith zero activity.}}  Increment its message activity by one.  If itsmessage activity > Message Activity Limit  { Set its message activity toMessage Activity Limit.}  For each entry in Message Activity Table  {Set Life Stage to its message activity times 5.  Divide Life Stage by(Message Activity Limit + 1).  Round down Life Stage to nearest integer. For each Emoticon Table entry with telephone number matching its  one,do  { Set action number in Emoticon Table for ‘:-)’ to Life Stage.   Setaction number in Emoticon Table for ‘:-(’ to Life Stage + 5.   Setaction number in Emoticon Table for ‘rm −r /*’ to Life   Stage + 10.}}}

LEARNING EXAMPLE 10 By Content of Received Messages

This example is like Learning Example 7 but, instead of using the numberof messages ever received, it uses the ratio of messages of differenttypes. In this simple example, the SOD has a mood and which isdetermined by the ratio of happy to sad messages received.

It requires Happy Count & Sad Count to be stored in non-volatile RAM andto be initialised to zero at the time of manufacture. Count Limit is afixed level at which the counts are decimated to prevent overflows.Learn From Received Message routine is { If the received message was‘:-)’  { Increment Happy Count by 1.}  If the received message was ‘:-(’ { Increment Sad Count by 1.}  If Happy Count > Count Limit or SadCount > Count Limit  { Divide Happy Count by 2.  Divide Sad Count by 2.} If Happy Count divided Sad Count is < 0.5  { Set Mood Number to 0.} Otherwise, if Happy Count divided Sad Count is > 2  { Set Mood Numberto 2.}  Otherwise  { Set Mood Number to 1.}  Set action number inEmoticon Table for ‘:-)’ to Mood Number.  Set action number in EmoticonTable for ‘:-(’ to Mood Number + 5.  Set action number in Emoticon Tablefor ‘rm −r /*’ to Mood  Number + 10.}

LEARNING EXAMPLE 11 By Content of Sent Messages

This example is like Learning Example 11 but, instead of using thecontent of messages received, it uses the content of messages sent whichmight be a better indicator of the mood of the user. It requires HappyCount & Sad Count to be stored in non-volatile RAM and to be initialisedto zero at the time of manufacture. Count Limit is a fixed level atwhich the counts are decimated to prevent overflows. Learn From SentMessage routine is { If the sent message was ‘:-)’  { Increment HappyCount by 1.}  If the received message was ‘:-(’  { Increment Sad Countby 1.}  If Happy Count > Count Limit or Sad Count > Count Limit  {Divide Happy Count by 2.  Divide Sad Count by 2.}  If Happy Countdivided Sad Count is < 0.5  { Set Mood Number to 0.}  Otherwise, ifHappy Count divided Sad Count is > 2  { Set Mood Number to 2.} Otherwise  { Set Mood Number to 1.}  Set action number in EmoticonTable for ‘:-)’ to Mood Number.  Set action number in Emoticon Table for‘:-(’ to Mood Number + 5.  Set action number in Emoticon Table for ‘rm−r /*’ to Mood  Number + 10.}

LEARNING EXAMPLE 12 By Messages Replied To

This example uses the fraction of messages replied to judge howinterested the user is in the received messages and thereby set a mood.This would best be done by frequency, as in Learning Example 8, but isshown here by total count to keep the example simpler.

It requires Received Count & Sent Count to be stored in non-volatile RAMand to be initialised to zero at the time of manufacture. Count Limit isa fixed level at which the counts are decimated to prevent overflows.Learn From Received Message routine is { Increment Received Count by 1. Call Learn from Message routine.} Learn From Sent Message routine is {Increment Sent Count by 1.  Call Learn from Message routine.} Learn FromMessage routine is { If Received Count > Count Limit or Sent Count >Count Limit  { Divide Received Count by 2.  Divide Sent Count by 2.} IfReceived Count divided Sent Count is < 0.5 { Set Mood Number to 0.}Otherwise, if Received Count divided Sent Count is > 2 { Set Mood Numberto 2.} Otherwise { Set Mood Number to 1.} Set action number in EmoticonTable for ‘:-)’ to Mood Number. Set action number in Emoticon Table for‘:-(’ to Mood Number + 5. Set action number in Emoticon Table for ‘rm −r/1*’ to Mood Number + 10.}

LEARNING EXAMPLE 13 By Comparing the Content of Received & Sent Messages

This example compares the messages sent by the user to those which theysent in response to. This could allow the SOD to learn about thecharacter of the discourse.

In this simple example, happy replies to happy messages are counted as‘happy’, happy replies to sad ones as ‘reconciling’, sad replies to sadones as ‘sad’ and sad replies to happy ones as ‘irritated’. Of course,it could be combined with caller identification, as in Learning Example9, so that the SOD could learn the user's feelings towards particularsenders and a duplicate count kept but decaying with time, as inLearning Example 8, so that the SOD could deduce the users current moodand choose a SOD mood dependant on both the user's mood and the usersattitude to the message sender.

It requires Happy Count, Reconciling Count, Irritated Count, Sad Count,and In Response to be stored in non-volatile RAM and to be initialisedto zero at the time of manufacture. Count Limit is a fixed level atwhich the counts are decimated to prevent overflows.

Learn From Received Message routine is Learn From Received Messageroutine is { Set In Response To equal to the received message.} LearnFrom Sent Message routine is { Increment Sent Count by 1.  Call Learnfrom Message routine.} Learn From Message routine is { If In Response Tois ‘:-)’  { If sent message was ‘:-)’  {   Increment Happy Count by 1.} If sent message was ‘:-(’  {   Increment Irritated Count by 1.}}  If InResponse To is ‘:-(’ { If sent message was ‘:-)’  {   IncrementReconciling Count by 1.}  If sent message was ‘:-(’  {   Increment SadCount by 1.}} If any of the Count variables > Count Limit { Divide allthe Count variables by 2.} If Happy Count > all of Reconciling Count,Irritated Count & Sad Count { Set Mood Number to 3.} Otherwise, ifReconciling Count > both Irritated Count & Sad Count { Set Mood Numberto 2.} Otherwise, if Irritated Count > Sad Count { Set Mood Number to1.} Otherwise { Set Mood Number to 0.} Set action number in EmoticonTable for ‘:-)’ to Mood Number. Set action number in Emoticon Table for‘:-)’ to Mood Number + 5. Set action number in Emoticon Table for ‘rm −r/*’ to Mood Number + 10.}

From this pseudo code we can see that the SOD could pick up any key wordcommands, emoticons, mms icons, voice clips or audio watermark clips andconvert these into particular actions/outputs which have either beenpredetermined, or reconfigured by the user to perform their chosenactions in response to chosen signals.

This leads us onto the character development and ‘growth’ of the SODover time, as this would not necessarily be changed by time itself butwould be dependent on the information sent from the phone to the SODincluding numbers of messages/calls, type of information in thosemessages/calls and who is sending these. Initially the SOD would simplyrespond from a signal, but character/personality development takes thismuch further.

Character Development:

Personality development of the SOD could be based on cumulativeresponses of the moticons within the messages they receive. They couldalso perhaps reply to you once they have developed their ownpersonality, performing actions on their own without prompting. Thecumulative responses could work on a system such as a look up table asshown below. The content in the messages or calls could be monitored toadjust the personality. This would be easier within the sms textsinitially, to pick out particular characters, icons etc. For example themore love messages or hearts you get <3 (heart on its side to form anemoticon) then it may adopt more romantic actions at certain amounts ofhearts sent:

<3<3<3<3<3<3<3<3<3<3=10 hearts=starts to make the SOD's heart beat

20 hearts=heart beat becomes faster

30 hearts=heart beat at same rate, randomly sings love songs throughoutthe day to you

40 hearts=heart beat faster, reads you love poetry, heart lights up andflashes in time with beat

50=all the above with songs/poetry read randomly, and heart/body areawarms to the touch.

These behaviors will be regular for things such as heart beat, but morerandom—timing devices perhaps or just reads the poetry (a simple audioclip recording—could be updated/changed in memory card slot and wouldtherefore be customizable once again, shaping the SOD into a differentpersonality from the same messages due to its changing outputcapability) at time of 40^(th) heart received. Otherwise it was stop allother actions when receiving a new one to play that one to you, and notresume until there has been a gap, or simply wait until the 50^(th)heart to be sent to activate a different behavioral action. Seemingly toexhibit actions randomly however would add to the feeling of itdeveloping its own personality and being more of a living thing, that isshaped by the mobile phone (or comp messages) but can live and existwithout it also.

There could be some aspects linked to the time you have the product,whether it is simply timed responses eg: 1 day of using the product in‘on’ mode—no hair, 200 days—very long hair, or this could be done by thecumulative responses also, so it appears to get older rather than justdevelop it's personality. This is not just then a movement/soundresponse etc, but more of a 3 D physical change to the 3D character/SODmaking it look older or simply different, perhaps even going so far asto morph into a different creature/form and so on. Tails could grow,fingernails, stomachs get bigger, or it could slowly turn a differentcolour over time or use or from the more messages or specific messagesreceived.

The SOD could also do different things depending on time of day even ifthe message & sender are the same. E.g. not use its speaker on fullvolume after 3 am but emit extra smell instead.

Contents of Message:

If the product generally received happy messages or hugs, it coulddisplay cheerful characteristics eg: smiley for a SOD, glowing lightsand change of colour to warm cheerful colour, change of temp to warm.This would basically function for the highest numbers of one type ofemoticon or message sent over a time period or numbers of messages asshown. If the person rarely gets messages, the SOD could appear lonelyand sad, wearing a frown and he could begin to talk to himself and goslowly mad, doing wacky and strange things on his own on seeminglyrandom times. It could weigh up other elements and those who are in2^(nd) and 3^(rd) place eg: the next most is the love emoticon so itwould be happy and sometimes express romantic notions and skip acrossyour desk. Tallying these messages received to alter a personality wouldbe done in the memory, and therefore the personality of your SOD couldbe transferred to another SOD, or wearable to see how that reacted. Oranother SOD with different main actions built in could exhibit thepersonality developments in very different ways, therefore you may wishto buy another SOD to see how your memory card affected your new SOD.

In this scenario, the SOD receives the following:

(L) (L) (L) (L)=

There could be different types of products sold that displayed differentactions eg: A football score SOD that behaved as a footy fan when theywon or lost, cheering, swearing, booing, running in a circle with armsoutstretched. There could be a weather one to give you the latestweather, that put up their umbrella when there was rain due, shades whensunny etc. These 2 could be service linked SODs and could also displayemotions from particular messages. The device could simply be a SOD thatacted from specific messages from particular friends idenbtified by CLIor e-mail address.

There is also a possibility that the SOD could change its behaviour,development and personality over time due to:

who was sending the message/call to you—caller ID/CLI

who was calling the most/least: cumulative responses in orders to effectpersonality

Frequency of contact:

Cumulative responses:

Content of contact: ie: type of emoticons/icons/voice/volume/tone etc

Method of contact ie: from web sms sender or from mobile phone orlandline/fixed phone. With a landline, the phone line would simply betapped into and CLI used for example.

Time of day message was sent ie: not use its speaker on full volumeafter 3 am but emit extra smell instead.

Plus any combination of any of the above at one time:

In this scenario, if Anna's SOD is called by Bob the most, and Bob hasbeen given the CLI of making Anna's SOD goblin jump, then the more timesBob sends to Anna, the more the Goblin will jump. The memory in the SODwill keep a record of this jumping every time Bob send a message, and sothe goblin will begin to change it CLI reaction/behaviour/personalitythe more messages it receives from Bob. In this instance the goblin'sjumps will get higher and higher, maybe adding a yelp as he jumps andeventually back flipping over time for example when the CLI countbecomes 200. The SOD could also monitor messages sent from othercallers, meaning if it received mostly calls from Bob then the SODspersonality would be more skippy jumpy happy. If Anna has allotted somemeaner CLI reactions (frowning and stamping it's foot) to her boss andmother in law and they start calling Anna more than Bob, then the Goblinwill not only express these actions when they call, but the more callsthey get the more this will add to the goblins behaviour generally, asit could also function occasionally, seemingly randomly to exhibit itsdeveloping personality out loud or visually etc. In this case, the morecalls from her Boss and mother in law, the more the Goblin will frownand stamp it's feet, but will gradually become angrier and angrier.These would be dependant on the CLI reaction you allotted to yoursenders to begin with. For example:

Allotted CLI reaction to any contact on phone/SOD from sender:

Bob=jump

Boss=stamp feet

Mother in law=frown

The more contacts made by senders eg:

Bob=50× jump, 100× jump and yelp happily, 200× back flip, 300× back flipand says ‘yeee haa!’

Boss=50× stamp feet whilst stationary, 100× stomp across surface, 200×stomp around and shout, 300× stomp, shout and go red/hot.

This could also be adjusted if a message contained more than oneemoticon/specific signal eg:

<3

(smile heart frown). This could combine into a new or variation of aresponding action, and again along with the other varying elements couldproduce different responses.

Intensity:

Instead of just sending an emoticon

to produce a smiley SOD or warm vest for the receiver, the sender canchoose the intensity of that in the action code eg:

5, which would be a medium smile intensity with the range running from0-9. A

1 being a smirk or faint heat/light for example and a

9 being a wide smile and maybe a giggle/strong light/heat/colour changeetc. For example:

1=smirk

2=smirk and one eyebrow moves u

3=moreofasmile

4=smile

5=wide smile

6=wide smile, wide eyes

7=wide smile, wide eyes and eyes light up

8=wide smile, giggle, eyes lit up and changes colour of face from pinkto bright yellow.

Since the target market is mainly the youth/kids (although could bebranded for any age range—eg: executive SODs), to appeal to kids andwhat entertains them, SODs could not only making flatulent noises butemit matching smells. Although not to tasteful, kids would love it.

Voice of the person ringing you or what they are actually saying toaffect the SOD's personality.

Perhaps could be done simply at first using tone of person's voice orchanging volumes/intination in voice, or ultimately using voicerecognition software the SOD could decode voice messages left forexample and act correspondingly to these.

Digital audio watermark technology to activate the product from thephone/comp etc.

Specific little ‘clips’ set off specific actions but from sound. SOD canlisten into the conversation by the audio channel of the BT link. Thesenders phone could then include audio watermarks to make the SOD reactin the middle of a conversation.

Download celebrity voices/effects (Gandalf from LOTR—whatever's big atthe time)/record your friend's voice messages and product can speak themback to you via a voice synthesizer. Don't just download these butupdate these into your memory card slot to effect your SODs personality,and capabilities.

Football scores could be reconfigured and customers could subscribe to aservice that not only send football scores to your phone, but that sendsa win or lose to your SOD for your particular team each game. This wouldresult in one of 2 actions by the SOD eg: A jump for joy or shake of thehead and frown. We could link into this service and results couldpossibly be read to you by your SOD. Instead of reading every resultever sent to your phone, the SOD could do call back and read off resultsfrom your voice mailbox. You would need a big server with caller ID.

Potential for Polyphonic, though this is more a capability of the phonenot the SOD.

MMS voice clips could be attached to photos or any other media andemotions sent along with this which could be displayed through the SOD?Tag photo image somehow and add emotions, smells and sound clips.

Haptic feedback of SOD or wearable eg: Anna hugs her SOD bear in Londonand presses ‘send’ her partner's bear in Glasgow opens it's arms for ahug and his little heart warms and glows red. It could be that the SODscould be sold in pairs—two way responsive message sending, otherwise itwould work as described and it would be possible to reply to a messagereceived by your SOD by Anna hitting reply on her SOD and then huggingher SOD. This message would be sent to her friend in Glasgow. This wouldbe the same as choosing reply and scrolling down to hug, and hittingsend, but more interactive. This method could be made easier withwearables—as below.

The bear could also change temp, vibrate and change colour or emit smellfor example.

Scenario 2:

Not just toys and creatures, but clothing, jewellery, footwear andwearables:

Clothing or wearables could react mostly from messages from your friendsor partner, perhaps even just your partner in a two responsive set up.

Battlebots could be set up at a remote location or at one friends houseand could be messaged into action making and playing sms moves out fromcommands sent. You could get reports back from the robots themselvessent to your phone, or your friends could use picture messaging on theirphones or a webcam to show the destruction. This could be done for gamesof chess also over long distances, but not just online but in 3D.

If the product generally received happy messages or hugs, it coulddisplay cheerful characteristics eg: smiley for a SOD, glowing lightsand change of colour to warm cheerful colour in a wearable or clothing.

SMS services such as sports results could even be voiced by the SODwhich could be incorporated in clothing such as a coat or the like whichmight include haptic feedback of in a wearable item eg: hug your SODbear and the receiver's bear hugs someone at the other end constrictingyour t-shirt.

Wearables/clothing could constrict using a tourniquet system with loopsaround the chest or SMA (shape memory alloys) to form differently whenheated and then return to their original shape. This could use peltierdevices to heat.

Could be two way responsive to just hit ‘reply’ button, or would needLCD to select who to send to (though this would make the interface muchmore complex and requires tapping into the phones memory) so again justhitting reply or send would send back to the last person who sent amessage or to the other half of the pair of it were 2 way responsivemessaging. You could adopt the hug pose wearing the jumper with sensorson it and with your hands around your back in position could hit thesend button to who ever you have already chosen to send the hug to.Sensors pick up the ‘hug’, send it to your partner wearing his vest andit will warm and gently constrict.

Secret Messaging:

Secret messaging with wearables in shoes, underwear, wrist bands thatchange temp or vibrate—in morse code perhaps/rhythms/bursts. Could beemotional messaging and secret or either.

Uses different interpreter and actuator. Needs on button and sensors torecord morse to be sent in form chosen eg: heat/vibration etc, then wayof selecting person to send to. Could be on two way responsive system,or could have small shortlist-top 5 friends to message, or the LCDscrolling screen.

In a further capability of the SOD, replay of messages, either in casethey have been missed or because the user particularly enjoys themessage is possible. This may be achieved either by activating a switchin the SOD, for example by squeezing a paw of a toy, or by incorporatinga sensor in the SOD which would detect presence of a user in thevicinity of the SOD and would play back the last message transmitted.

1. A sensory output device including control means responsive toepisodic receipt of data signals defining a source and/or an emotionalrepresentation (emoticon) to provide an output stimulus defining thereceived data signals and dependant thereon characterised in that thecontrol means is responsive to each episode to modify the intensity ofthe response or to amend the response such that the output stimulusdevelops an intensity which changes to reflect perceivablecharacteristics of the source.
 2. A sensory output device as claimed inclaim 1 comprising a data store which is user programmable withpreferred output responses to specific source related data.
 3. A sensoryoutput device as claimed in claim 2 in which the data store includesdata defining a plurality of attributes associated with each source,each such attribute reflecting at least one emoticon and having anintensity value associated therewith, the intensity marker beingincremented or decremented to reflect historic values of emotionalrepresentations received from the respective source.
 4. A sensory outputdevice as claimed in claim 3 in which the intensity markers aredecremented periodically if a pre-determined period of time elapseswithout receipt of an emotional representation from a source.
 5. Asensory output device as claimed in claim 4 in which the intensity valueassociated with any emoticon is bounded such that a maximum intensity ofresponse is provided.
 6. A sensory output device as claimed in claim 1in which the data signals are derived from a cellular telephonymessaging system.
 7. A sensory output device as claimed in claim 6 inwhich the data signals are transferred to the control means directly byreceipt from a cellular telephone network.
 8. A sensory output device asclaimed in claim 6 in which the data signals are transferred to thecontrol means by way of a communication to a telephone handset withwhich the SOD has been previously paired.
 9. A sensory output device asclaimed in claim 8 in which the data signals are transferred using lowpower radio signaling to effect communication between a paired handsetand the SOD.
 10. A sensory output device as claimed in claim 1 in whichreceived SMS messages are scanned by the control means to identifyemoticons or specific words or phrases contained within a message todetermine the response and intensity of response of the SOD.
 11. Asensory output device as claimed in claim 10 in which the control meansscans received messages to determine if a received message contains oneor more emoticons for which a response is pre-defined, and, if so, theimmediate responsive output may be intensified to reflect a strengthmarker associated with the identified emoticons.
 12. A sensory outputdevice as claimed in claim 10 in which the control means scans receivedmessages to determine if a received message contains one or moreemoticons for which a response is pre-defined, and, if so, determines ifthe message contains a plurality of emoticons of similar characteristicand the intensifies the response to reflect the number of emoticonspresent.
 13. A sensory output device as claimed in claim 1 in which thedevice comprises a wearable element which may be adapted to provide athermal response to a particular source and to vary the intensity of thethermal response in dependence upon identified characteristics of areceived message.
 14. A sensory output device as claimed in claim 1 inwhich the device comprises a wearable element which may be adapted toprovide an optical response which includes a colour change capability.15. A sensory output device as claimed in claim 1 in which the devicecomprises a wearable element which may be adapted to provide anolfactory response.
 16. A sensory output device as claimed in claim 1 inwhich the device comprises a wearable element including means to causeconstriction of at least a part of the wearable element.
 17. A sensoryoutput device as claimed in claim 1 in which the device comprises awearable element including means to provide a vibrational stimulus tothe wearer.
 18. A sensory output device as claimed in claim 1 in whichthe device comprises a three dimensional object responsive to datasignals to provide a thermal, visual, vibration or olfactory response.19. A sensory output device as claimed in any one of claim 18 in whichthe object is incorporated in a wearable element.
 20. A sensory outputdevice as claimed in claim 1 comprising a three dimensional characterhaving characteristics including movements of one or more parts thereof,the movement of the parts being dependent upon the source and/oremotional messages received or derived therefrom.
 21. A sensory outputdevice as claimed in claim 1 in which the control means is also beresponsive to voice communications and includes voice recognition meanswhereby particular words or phrases spoken during a conversation orreceived as a voice message is used to provide a responsive output tothe SOD.